# 给定一个非负整数 numRows，生成「杨辉三角」的前 numRows 行。
#
# 在「杨辉三角」中，每个数是它左上方和右上方的数的和。
from typing import List


class Solution(object):
    def generate(self, numRows):
        """
        :type numRows: int
        :rtype: List[List[int]]
        """
        res = []
        for i in range(numRows):
            tmp = []
            for j in range(0, i+1, 1):
                if j == 0 or j == i:
                    tmp.append(1)
                else:
                    tmp.append(res[i - 1][j - 1] + res[i - 1][j])
            res.append(tmp)
        return res


if __name__ == '__main__':
    num = 5
    solution = Solution()
    res = solution.generate(5)
    print(res)
